package org.hcf.data.redis;

/**
 * redis缓存key定义
 *
 * @author ww
 * @since 2023/4/25
 */
public class RedisCacheKey {


    /**
     * CX 代理关系缓存KEY
     * 对应结构 key:userId value:AgentEntity
     */
    public final static String CX_AGENT = "cx_agent:all";

    /**
     * 邀请码与代理rid映射 开通代理时设置
     * key: 邀请码 v:代理rid
     */
    public final static String CX_AGENT_IN = "cx_agent:rid";

    /**
     * 代理红利数据
     * key: userId, v:红利对象
     */
    public final static String CX_AGENT_DIVIDEND = "cx_agent:dividend";

    /**
     * 新对象数据
     * 存在两种情况：
     * 1.有"_id"就表示不是新数据；
     * 2.没有"_id"分两种情况，可能是新数据可能不是新数据
     * 2.1 检测新数据列表是否存在这个主键值，如果存在就不是新数据，如果不存在就是新数据
     * key: class = list<Object>
     */
    public final static String NEW_OBJ_DATA = "new_obj_data";

    /**
     * 所有玩家数据缓存RMap缓存对象地址 根据该map可以拿到所有内存中玩家 k是玩家id v是玩家所有数据的RMap
     */
    public final static String PLAYER_MAP = "player_map";
    public final static String PHONE_USER_ID_MAP = "phone_user_id_map";
    public final static String PHONE_MAP = "player_phone_map";
    public final static String ACCOUNT_MAP = "player_account_map";
    public final static String GROUP_MAP = "group_map";
    public final static String GROUP_INFO_DATA = "group_info_data:";
    public final static String USER_GROUP_INFO_DATA = "user_group_info_data:";
    public final static String GROUP_GROUP_INFO_DATA = "group_group_info_data:";
    public final static String FRIEND_INFO_DATA = "friend_info_data:";
    public final static String APPLY_MAP = "apply_map";
    public final static String USER_APPLY_DATA = "user_apply_data:";
    public final static String GROUP_APPLY_DATA = "group_apply_data:";
    public final static String MESSAGE_MAP = "message_map";
    public final static String NOT_RECEIVE_MESSAGE_DATA = "not_receive_message:";
    public final static String PLUGIN_CLIENT_MAP = "plugin_client_map";
    public final static String PLUGIN_TOKEN_CLIENT_MAP = "plugin_token_client_map";

    public final static String PLUGIN_MATRIX_MAP = "plugin_matrix_map";
    public final static String PLUGIN_MATRIX_ID_USER_MAP = "plugin_matrix_id_user_map";
    public final static String PLUGIN_USER_MATRIX_ID_MAP = "plugin_user_matrix_id_map";
    public final static String GAME_ROOM_MAP = "game_room_map";

    public final static String USER_SIG_MAP = "user_sig_map";


    /**
     * 用户登录信息缓存
     */
    public final static String USER_AUTH = "user_auth";

    /**
     * redis中玩家所有数据map
     */
    public final static String PLAYER_DATA_MAP = "player_data_map:";

    /**
     * redis中游戏基本信息，比如当前游戏是否开放，当前游戏的LUA逻辑路径等
     */
    public final static String GAME_BASE_INFO = "game_base_info";


    /**
     * 游戏配置 sots
     */
    public final static String GAME_CONFIG_SLOTS = "game_config_slots:";

    /**
     * 游戏配置 百人场
     */
    public final static String GAME_CONFIG_BRC = "game_config_brc:";

    /**
     * 游戏配置 CX
     */
    public final static String GAME_CONFIG_CX = "game_config_cx:";

    /**
     * 游戏相关统计
     */
    public final static String GLOBAL_STATISTICS = "global_statistics";

    /**
     * 玩家货币信息
     */
    public final static String LOCK_ROLE_MONEY = "role_money_lock:";

    /**
     * 玩家游戏相关数据
     */
    public final static String LOCK_ROLE_GAME_DATA = "role_game_data_lock:";


    public final static String GAME_RANKING_ALL_DATA = "game_ranking_data_all:";

    public final static String GAME_RANKING_DATA = "game_ranking_data:";

    public final static String GAME_STATISTICS = "game_statistics";

    public final static String LOCK_RANKING_DATA_ALL = "ranking_data_all_lock:";
    public final static String LOCK_RANKING_DATA = "ranking_data_lock:";

    public final static String MERCHANT_DATA = "merchant_data";

    public final static String MERCHANT_ORDER_DATA = "merchant_order_data";


    public final static String LOCK_MERCHANT_ORDER = "lock_merchant_order";

    public final static String ROLE_GAME_DATA = "role_game_data";

    public final static String LOCK_STATISTICS_DATA = "role_statistics_lock:";

    public final static String GAME_JACKPOT_DATA = "game_jackpot_data";

    public final static String LOCK_GAME_JACKPOT_DATA = "game_jackpot_lock:";

    public final static String JACKPOT_LOG_DATA = "jackpot_log_data";

    public final static String LOCK_JACKPOT_LOG_DATA = "jackpot_log_lock:";
    public final static String GAME_RECORD_DATA = "game_record_data";
    public final static String GAME_END_RECORD_DATA = "game_end_record_data";
    public final static String TEMP_SUPER_USER_ID = "temp_super_user_id";
    public final static String LOCK_TEMP_SUPER_USER = "lock_temp_super_user";
}
